package com.dindang.checkline.app.utils;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

import com.dindang.checkline.mvp.greendao.gen.DaoMaster;
import com.dindang.checkline.mvp.greendao.gen.DaoSession;

/**
 * Created by cxw on & 2018/11/9
 */
public class DBUtils {

    private static DaoMaster.DevOpenHelper mHelper;
    private static SQLiteDatabase db;
    private static DaoMaster mDaoMaster;
    private static DaoSession mDaoSession;
    private static Context mContext;

    public static void init(Context context){
        mContext = context;
        _setDatabase();
    }

    private static void _setDatabase(){
        // 通过 DaoMaster 的内部类 DevOpenHelper，你可以得到一个便利的 SQLiteOpenHelper 对象。
        // 可能你已经注意到了，你并不需要去编写「CREATE TABLE」这样的 SQL 语句，因为 greenDAO 已经帮你做了。
        // 注意：默认的 DaoMaster.DevOpenHelper 会在数据库升级时，删除所有的表，意味着这将导致数据的丢失。
        // 所以，在正式的项目中，你还应该做一层封装，来实现数据库的安全升级。
        mHelper = new DaoMaster.DevOpenHelper(mContext, "ddgld.db");
        db = mHelper.getWritableDatabase();
//        db = mHelper.getEncryptedWritableDb("123");
        // 注意：该数据库连接属于 DaoMaster，所以多个 Session 指的是相同的数据库连接。
        mDaoMaster = new DaoMaster(db);
        mDaoSession = mDaoMaster.newSession();
    }

    public static DaoSession getDaoSession() {
        return mDaoSession;
    }
    public static SQLiteDatabase getDb() {
        return db;
    }
}
